#include <iostream>

using namespace std;

const int N = 1e5 + 10;

int e[N], l[N], r[N], idx;
bool st[N];

void init()
{
	l[1] = 0;
	r[0] = 1;
	idx = 2;
}

void add(int k, int x)
{
	e[idx] = x;
	r[idx] = r[k], l[idx] = k;
	l[r[k]] = idx, r[k] = idx ++ ;
}

void del(int k)
{
	l[r[k]] = l[k];
	r[l[k]] = r[k];
}

int main()
{
	init();
	int n;
	cin >> n;
	
	add(0, 1);
	
	for (int i = 2; i <= n; i ++ )
	{
		int k, op;
		cin >> k >> op;
		
		if (op)
		{
			add(k + 1, i);
		}
		else 
		{
			add(l[k + 1], i);
		}
	}
	
	int m;
	cin >> m;
	
	while (m -- )
	{
		int k;
		cin >> k;
		
		if (st[k + 1]) continue;
		st[k + 1] = true;
		del(k + 1);
	}
	
	for (int i = r[0]; i != 1; i = r[i]) cout << e[i] << ' ';
	
	return 0;
} 
